package Thread.Thread_Security.SingletonPattern;
//通过饿汉方式实现单例模式
//只要程序启动就会创建实例

class Singleton {

    private static Singleton instance=new Singleton();
    /*static修饰 instance成员变量就是“类成员”
    类成员的初始化，就是在singlrton这个类被加载的时候（也就是程序启动的时候）
     */
    private Singleton() {}

    //设为私有，在类的外部就无法调用构造方法，也就没法构造实例了，就只有一个实例，单例模式
    //反射和序列化反序列化都可打破单例模式，但是这些方法都是非常规方法，一般在实际开发中不用
    //单例模式前提是一个进程中
    public static Singleton getInstance() {
        return  instance;
    }
}
public class Demo30 {

    public static void main(String[] args) {
        Singleton s1=Singleton.getInstance();
        Singleton s2=Singleton.getInstance();
        System.out.println(s1==s2);
    }
}
